#include "SelectionSort.h"

//时间: 平均O(n^2) 最坏O(n^2) 空间：O(1) 不稳定 例如:4 4 2
void SimpleSelection::Iterative(int list[], int n)
{
	for(int i=0; i<n; ++i) {
		int min = i;
		for(int j=i+1; j<n; ++j) {
			if (list[j] < list[min])
				min = j;
		}
		Swap(list[i], list[min]);
	}	
}

//时间: 平均O(n^2) 最坏O(n^2) 空间: O(n) 不稳定 例如:4 4 2
void SimpleSelection::Recursive(int list[], int n)
{
	if (n <= 1) return;

	int min = 0;
	for(int j=1; j<n; ++j) {
		if (list[j] < list[min]) {
			min = j;
		}
	}					
	Swap(list[0], list[min]);	

	Recursive(list+1, --n);		
}

void HeapSelection::Iterative(int list[], int n)
{
	
}

void HeapSelection::Recursive(int list[], int n)
{
	
}
